/*
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.byt.framlib.commonwidget.colorcardview;

import android.content.Context;
import android.content.res.ColorStateList;
import androidx.annotation.Nullable;

/**
 * Interface for platform specific CardView implementations.
 */
interface ShadowViewImpl {
    void initialize(ShadowViewDelegate cardView, Context context, ColorStateList backgroundColor,
                    float radius, float elevation, float maxElevation, ColorStateList shadowColorStart, ColorStateList shadowColorEnd);

    void setRadius(ShadowViewDelegate cardView, float radius);

    float getRadius(ShadowViewDelegate cardView);

    void setElevation(ShadowViewDelegate cardView, float elevation);

    float getElevation(ShadowViewDelegate cardView);

    void initStatic();

    void setMaxElevation(ShadowViewDelegate cardView, float maxElevation);

    float getMaxElevation(ShadowViewDelegate cardView);

    float getMinWidth(ShadowViewDelegate cardView);

    float getMinHeight(ShadowViewDelegate cardView);

    void updatePadding(ShadowViewDelegate cardView);

    void onCompatPaddingChanged(ShadowViewDelegate cardView);

    void onPreventCornerOverlapChanged(ShadowViewDelegate cardView);

    void setBackgroundColor(ShadowViewDelegate cardView, @Nullable ColorStateList color);

    ColorStateList getBackgroundColor(ShadowViewDelegate cardView);
}
